package criterioOrden;

import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.when;
import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.times;
import model.Publicacion.Pregunta;
import model.Usuario.UsuarioRegistrado;
import model.criterio.criterioOrden.CriterioOrdenAutor;
import model.criterio.criterioOrden.Orden;

import org.junit.Assert;
import org.junit.Before;
import org.junit.Test;

public class TestCriterioOrdenAutor {
	
	CriterioOrdenAutor c;
	Pregunta p;
	Pregunta p2;
	UsuarioRegistrado u;
	UsuarioRegistrado u2;

	@Before
	public void setUp() throws Exception {
		c=new CriterioOrdenAutor(Orden.ASC);
		p=mock(Pregunta.class);
		p2=mock(Pregunta.class);
		u=mock(UsuarioRegistrado.class);
		u2=mock(UsuarioRegistrado.class);
		
	}

	@Test
	public void testCompare() {
		when(p.getAutor()).thenReturn(u);
		when(p2.getAutor()).thenReturn(u2);
		when(u.getNombre()).thenReturn("a");
		when(u2.getNombre()).thenReturn("b");
		Assert.assertEquals(-1,c.compare(p, p2));
		verify(p,times(1)).getAutor();
		verify(p2,times(1)).getAutor();
		verify(u,times(1)).getNombre();
		verify(u2,times(1)).getNombre();
	}

}
